//
//  YSPEmoticonModel.swift
//  EmotionIcon
//
//  Created by 朴裕识 on 15/12/29.
//  Copyright © 2015年 Apple. All rights reserved.
//

import UIKit

class YSPEmoticonModel: NSObject {
    /// 表情的使用次数
    var times = 0
    
    /// id 表情包文件夹名称
    var id: String?
    
    /// 表情名称,用于网络传输
    var chs: String?
    
    /// 表情图片名称
    var png: String? {
        didSet {
            // 当kvc设置png时,来拼接完整地图片路径
            // 完整地图片路径 = bundlePath + id + 图片名称
            pngPath = YSPEmoticonPackageModel.bundlePath + "/\(id!)/\(png!)"
        }
    }
    
    /// 表情图片的完整路径
    var pngPath: String?
    
    /// code用于显示emoji表情
    var code: String? {
        didSet {
            // kvc设置code之后,将code转成emoji表情
            // 创建扫描器
            let scanner = NSScanner(string: code!)
            
            // 扫描
            var result: UInt32 = 0
            scanner.scanHexInt(&result)
            let scalar = UnicodeScalar(result)
            
            let c = Character(scalar)
            emoji = String(c)
        }
    }
    
    var removeEmoticon = false
    
    /// true表示是删除按钮   false表示空白按钮
    init(removeEmoticon: Bool) {
        self.removeEmoticon = removeEmoticon
        super.init()
    }
    
    /// emoji的字符串
    var emoji: String?
    
    /// 字典转模型
    init(id: String?, dict: [String: AnyObject]) {
        super.init()
        
        self.id = id
        // 使用KVC赋值
        setValuesForKeysWithDictionary(dict)
    }
    
    // 字典的key在模型中找不到对应的属性
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    
    // 对象打印方法
    override var description: String {
        return "\n\t\t表情模型:chs: \(chs), png: \(png), code: \(code)"
    }

}
